package com.protocolterminal.AFN.entity;

import java.util.List;

import com.protocolterminal.function.FrameFunction;

public class AFN04F10 implements Interface_Data {

	@Override
	public String frametolist(String frame) throws Exception {

		return null;
	}

	@Override
	public String listtoframe(List<String> datalist) throws Exception {
		int n = Integer.valueOf(datalist.get(0));
		if (datalist.size() != 1 + 13 * n) {
			return "";
		}
		String data = "";
		FrameFunction frameFunction = new FrameFunction();
		data += frameFunction.Reverse(Integer.toHexString(n | 0x10000).substring(1));
		for (int i = 0; i < n; i++) {
			// 序号
			data += frameFunction
					.Reverse(Integer.toHexString(Integer.valueOf(datalist.get(1 + i * 13)) | 0x10000).substring(1));
			// 测量点好
			data += frameFunction
					.Reverse(Integer.toHexString(Integer.valueOf(datalist.get(2 + i * 13)) | 0x10000).substring(1));
			// 通讯速率\端口
			data += Integer.toHexString((Integer.valueOf(datalist.get(3 + i * 13)) << 5)
					| Integer.valueOf(datalist.get(4 + i * 13)) | 0x100).substring(1);
			// 协议
			data += Integer.toHexString(Integer.valueOf(datalist.get(5 + i * 13)) | 0x100).substring(1);
			// 地址
			data += frameFunction.Reverse(datalist.get(6 + i * 13));
			// 密码
			data += frameFunction.Reverse(datalist.get(7 + i * 13));
			// 费率个数
			data += Integer.toHexString(Integer.valueOf(datalist.get(8 + i * 13)) | 0x100).substring(1);
			// 整数、小数
			data += Integer.toHexString(((Integer.valueOf(datalist.get(9 + i * 13))) << 2)
					| (Integer.valueOf(datalist.get(10 + i * 13))) | 0x100).substring(1);
			// 采集器地址
			data += frameFunction.Reverse(datalist.get(11 + i * 13));
			// 大类、小类
			data += Integer.toHexString((Integer.valueOf(datalist.get(12 + i * 13)) << 4)
					| Integer.valueOf(datalist.get(13 + i * 13)) | 0x100).substring(1);
		}

		return data;
	}

}
